home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu721.dms / pu721.adf / Compress next >
Text File  |  1978-05-02  |  15KB  |  567 lines

  1. ;;
  2. ;;             EPU-Stakker Installation
  3. ;;
  4. ;;     by S.Tavener - National Amiga Users Group
  5. ;;                     
  6. ;; DATE     : 8/9/94
  7. ;; REVISION NO. : v1.70
  8. ;;
  9. ;; © Installer Routine Copyright to Stuart Tavener
  10.  
  11.  
  12. (set @default-dest "WorkBench:")
  13.  
  14. (set intro
  15.    (cat
  16.          "\n\nNational Amiga Users Group\n"
  17.          "Presents\n"
  18.          "EPU Stakker Installation\n"
  19.          "Compiled by Stuart Tavener.June 1994\n"
  20.          "\n\nINSTRUCTIONS.\n "
  21.          "BOOT from the Device that you wish to Compress,\n"
  22.          "Then Execute this Installation.\n"
  23.          "(The SYSTEM files will be copied to your Boot Drive)"
  24.    )
  25. )
  26.  
  27. (set asklib-help
  28.    (cat "EPU Stakker can use a variety of Compression "
  29.      "Techniques, they will ALL give some advantage. "
  30.      "If you have enough room then Install them All "
  31.      "as Librarys such as NONE will come in usefull "
  32.      "for Decompressing Files at later dates.\n"
  33.      "\nEPU0 - Bog Standard, very basic."
  34.      "\nEPU1 - Only Slighty Better."
  35.      "\nNUKE - Best Overall, achieves 600K/second\n"       
  36.      "       Decompression at around 50% average on most\n" 
  37.      "       files. We recommend you to use NUKE."
  38.      "\nRDCN - Medium, gets up to 800K/second but averages\n       around 35% Compression."
  39.      "\nBLZM - Quite slow, 300K/second Decompression,\n       Compression of 24-33%."
  40.      "\nFAST - Very Fast Compression and Decompression\n       around 1Meg/second!!, but only reaches 30-35%\n       Compression."
  41.      "\nSHRI - Reasonable 42-53% Compression but fairly Slow\n       Algorithms."
  42.      "\nNONE - Use to Return files back to 0% Compression\n       De-Compresses your drive to Normal."
  43.    )
  44. )
  45.  
  46. (set installlibs (cat "Choose One or More Compression Librarys to Install to SYS:libs\nHELP gives more Detailed Information\n")
  47. )
  48.  
  49. (set deflib (cat " - NOT Installed"))
  50.  
  51. (set devices-help
  52.    (cat "This Allows You to select a different Partition or "
  53.         "Device to Compress,\n\n"
  54.         "HARDDISK USERS are advised to NOT Compress their "
  55.         "Boot (SYS:) drive as this will slow-down Boot-up time "
  56.         "and may cause problems with libraries/handlers.\n\n"
  57.         "FLOPPY DRIVE users can just select DF0: or similar,"
  58.         "but this section does allow Compression of ANY "
  59.         "disk, but remember that it can only be used with a "
  60.         "'Boot disk' running the EPU Stakker Program with the "
  61.         "relevant Compression Librarys. Therefore if this is "
  62.         "Intended, you should select to Install ALL "
  63.         "Compression Librarys on to the main 'Boot disk'"
  64.    )
  65. )
  66.  
  67.  
  68. (set startupfileerr (cat "\n\n\nYou Have no Startup-sequence on this Disk!"
  69.                          "\nSo EPU cannot be Installed !!")
  70. )
  71.  
  72.  
  73.  
  74. (set again (cat "\n\n\n\n\n\n\ Do You want to Install / Compress Another Device ?"))
  75.  
  76. (set reboot (cat "\n\n\n\n To Take Effect of EPU Stakker"
  77.                  "\n Re-Boot Your Computer NOW"
  78.             )
  79. )
  80.  
  81. ;-----------------------------------------------------------
  82.  
  83. (complete 0)
  84. (message intro)
  85. (welcome)
  86.  
  87.  
  88.    ;ask which device to compress, mainly for HD users.
  89.    (set @default-dest
  90.       (askdir
  91.          (prompt "\nPlease Choose the Device to Install the EPU Program\n")
  92.          (help devices-help)
  93.          (default "Workbench:")
  94.       )
  95.    )
  96.  
  97.    ;copy this for executing scripts 
  98.    (if (exists (tackon @default-dest "execute"))
  99.       (set null 0)
  100.       (copyfiles
  101.          (source "Stakker:C/execute")
  102.          (dest @default-dest)
  103.          (optional "force")
  104.       )   
  105.    ) 
  106.  
  107.    (complete 10)
  108.  
  109.    ( 
  110.          (copyfiles
  111.             (prompt "\n" "copying EPU system files to SYS:")
  112.             (help "")
  113.             (source "Stakker:l/EPU1.handler")
  114.             (dest (tackon @default-dest "L"))
  115.         (optional "force")
  116.          )
  117.  
  118.       (complete 15)
  119.  
  120.  
  121.          (copyfiles
  122.             (source "Stakker:l/EPU2.handler")
  123.             (dest (tackon @default-dest "L"))
  124.             (optional "force")
  125.          )
  126.  
  127.  
  128.       (complete 20)
  129.  
  130.          (copyfiles
  131.             (source "Stakker:l/EPU3.handler")
  132.             (dest (tackon @default-dest "L"))
  133.             (optional "force")
  134.          )
  135.  
  136.  
  137.       (complete 25)
  138.  
  139.          (copyfiles
  140.             (source "Stakker:EPU")
  141.             (dest @default-dest)
  142.             (optional "force")
  143.          )
  144.  
  145.  
  146.       (complete 30)
  147.  
  148.          (copyfiles
  149.             (source "Stakker:recomp")
  150.             (dest @default-dest)
  151.             (optional "force")
  152.          )
  153.  
  154.  
  155.       (if (exists (tackon @default-dest "T"))
  156.          (set null 0)
  157.          (makedir (tackon @default-dest "T"))
  158.       )
  159.       
  160.  
  161.  
  162. (if (= @user-level 1)  ; the user-level is Intermediate (1) then setup automatically
  163.  
  164.    ;then
  165.    (
  166.          (copyfiles
  167.             (source "Stakker:libs/xpkNUKE.library")
  168.             (dest  (tackon @default-dest "libs"))
  169.             (optional "force")
  170.           )
  171.       
  172.          (copyfiles
  173.             (source "Stakker:libs/xpkNONE.library")
  174.             (dest  (tackon @default-dest "libs"))
  175.             (optional "force")
  176.          )
  177.          
  178.    ) 
  179.  
  180.    ;else - user level Expert then let user decide what files to copy
  181.    (
  182.       (set libflag
  183.          (askoptions
  184.             (prompt installlibs)
  185.             (help asklib-help)
  186.             (choices
  187.                "EPU0"
  188.                "EPU1"
  189.                "NUKE"
  190.                "RDCN"
  191.                "BLZW"
  192.                "FAST"
  193.                "SHRI"
  194.                "NONE"
  195.             (default -1) ;all libs
  196.             )
  197.          )
  198.       )
  199.  
  200.   
  201.       ; install required compression librarys
  202.       (if (IN libflag 0)
  203.             (copyfiles
  204.                (source "Stakker:libs/EPU0.library")
  205.                (dest  (tackon @default-dest "libs"))
  206.                (optional "force")
  207.             )
  208.           
  209.       )
  210.  
  211.       (if (IN libflag 1)
  212.             (copyfiles
  213.                (source "Stakker:libs/EPU1.library")
  214.                (dest  (tackon @default-dest "libs"))
  215.                (optional "force")
  216.             )
  217.          
  218.       ) 
  219.  
  220.  
  221.       (if (IN libflag 0 1) 
  222.             (copyfiles
  223.                (source "Stakker:libs/lh.library")
  224.                (dest  (tackon @default-dest "libs"))
  225.                  (optional "force")
  226.             )
  227.          
  228.       )
  229.  
  230.  
  231.  
  232.       (if (IN libflag 2)
  233.             (copyfiles
  234.                (source "Stakker:libs/xpkNUKE.library")
  235.                (dest  (tackon @default-dest "libs"))
  236.                (optional "force")
  237.             )   
  238.           
  239.       )
  240.  
  241.       (if (IN libflag 3)
  242.             (copyfiles
  243.                (source "Stakker:libs/xpkRDCN.library")
  244.                (dest  (tackon @default-dest "libs"))
  245.                  (optional "force")
  246.             )
  247.           
  248.       )
  249.  
  250.  
  251.       (if (IN libflag 4)
  252.             (copyfiles
  253.                (source "Stakker:libs/xpkBLZW.library")
  254.                (dest  (tackon @default-dest "libs"))
  255.                (optional "force")
  256.             )  
  257.          
  258.       )
  259.  
  260.       (if (IN libflag 5)
  261.             (copyfiles
  262.                (source "Stakker:libs/xpkFAST.library")
  263.                (dest  (tackon @default-dest "libs"))
  264.                (optional "force")
  265.             )   
  266.          
  267.       )
  268.  
  269.       (if (IN libflag 6)
  270.             (copyfiles
  271.                (source "Stakker:libs/xpkSHRI.library")
  272.                (dest  (tackon @default-dest "libs"))
  273.                (optional "force")
  274.             )   
  275.          
  276.       )
  277.  
  278.       (if (IN libflag 7)
  279.             (copyfiles
  280.                (source "Stakker:libs/xpkNONE.library")
  281.                (dest  (tackon @default-dest "libs"))
  282.                (optional "force")
  283.             )
  284.          
  285.       )
  286.    )
  287.  
  288. ;-------------------------------------------------------------
  289.  
  290.    )
  291. )
  292.    (complete 35)
  293.    
  294.    ;------------------------------------------------------------
  295.    (set install 1)
  296.  
  297.    (complete 36)
  298.  
  299.    ;do this while not wanting to quit at end of script
  300.    (while install
  301.    (set out 0)
  302.    ;ask which device to compress, mainly for HD users.
  303.    (set installdevice
  304.       (askdir 
  305.          (prompt "\nPlease Select Device or Partition to Compress\n")
  306.          (help "This section allows you to choose which drive/device "
  307.            "you want to compress.\n\n"
  308.            "HARD DISK users can pick any partition (See documents "
  309.            "before compressing your Workbench partition).\n\n"
  310.            "FLOPPY DISK users should pick the SAME device (disk) "
  311.            "that they chose at the last option - See Docs!."
  312.      ) 
  313.          (default "Work:")
  314.          (disk)
  315.       )
  316.    )
  317.    
  318.    (complete 37)
  319.  
  320.    ;-----------------------------------------------------------
  321.    (set libcheck 1)
  322.  
  323.    (set selectlib 1)
  324.    (if (= @user-level 1)  ; the user-level is Intermediate (1) then just copy default lib.
  325.       ;then
  326.       (
  327.          (set lib "NUKE")
  328.          (set len (- (strlen installdevice) 1))
  329.          (set dev (substr installdevice 0 len))
  330.          (complete 38)
  331.       )
  332.       
  333.       (
  334.       ;else user-level is expert (2) then prompt which Installed lib to use
  335.       (while (= out 0)
  336.          (set uselib
  337.             (askchoice
  338.                (prompt "\nPlease Choose Which Library to Use on Compression.\n")
  339.                (help asklib-help)
  340.                (choices
  341.                   (if (IN libflag 0)("EPU0")(deflib))
  342.                   (if (IN libflag 1)("EPU1")(deflib))
  343.                   (if (IN libflag 2)("NUKE")(deflib))
  344.                   (if (IN libflag 3)("RDCN")(deflib))
  345.                   (if (IN libflag 4)("BLZW")(deflib))
  346.                   (if (IN libflag 5)("FAST")(deflib))
  347.                   (if (IN libflag 6)("SHRI")(deflib))
  348.                   (if (IN libflag 7)("NONE")(deflib))
  349.                   (default -1)
  350.                )
  351.             )
  352.          )
  353.  
  354.          ;check if libs are installed
  355.          ;by calcing 0-7(choice)  >  0-128 values(options)
  356.          ;------------------------------------------------(this is a bit smart eh !!??)
  357.          (set flag2 uselib) ;set 2^n multiply amount
  358.          (set libcheck 1)
  359.          (while flag2
  360.             (set libcheck(* 2 libcheck))
  361.             (set flag2(- flag2 1))
  362.          ) ;loop and count in binary (2^n)
  363.          ;------------------------------------------------
  364.          ;then check the two binary values by ANDing them together to check for matching bits
  365.  
  366.          (set out (BITAND libflag libcheck))
  367.  
  368.       )
  369.  
  370.  
  371.       ; program check   
  372.       ;(message "uselib (0-7) = "uselib "\n out =" out "\nlibflag=" libflag
  373.       ;"libcheck =" libcheck) 
  374.  
  375.       ; install required compression librarys
  376.       (if (= uselib 0)
  377.             (set lib "EPU0")
  378.       )
  379.  
  380.       (if (= uselib 1)
  381.             (set lib "EPU1")
  382.       )
  383.  
  384.       (if (= uselib 2)
  385.             (set lib "NUKE")
  386.       )
  387.  
  388.       (if (= uselib 3)
  389.             (set lib "RDCN")
  390.       )
  391.  
  392.       (if (= uselib 4)
  393.             (set lib "BLZW")
  394.       )
  395.  
  396.       (if (= uselib 5)
  397.             (set lib "FAST")
  398.       )
  399.  
  400.       (if (= uselib 6)
  401.             (set lib "SHRI")
  402.       )
  403.  
  404.       (if (= uselib 7)
  405.             (set lib "NONE")
  406.       )
  407.  
  408.       (set len (- (strlen installdevice) 1))
  409.       (set dev (substr installdevice 0 len))
  410.  
  411.       )
  412.    )
  413.  
  414.    (complete 40)
  415.  
  416.   
  417.  
  418.     (if (<> @pretend 1)
  419.  
  420.     ;so if not in pretend mode then do this bit.
  421.     (
  422.        ;-----------------------------------------------------------
  423.        ;write EPU execute script file for chosen device
  424.  
  425.        (if (exists (tackon @default-dest "s/startup-old"))      
  426.           (
  427.              (protect (tackon @default-dest "s/startup-old") "+w +d")
  428.                 (delete (tackon @default-dest "s/startup-old"))
  429.           )
  430.           (set null 0)
  431.        )
  432.  
  433.  
  434.        (if (exists (tackon @default-dest "s/startup-sequence"))
  435.           (
  436.              (protect (tackon @default-dest "s/startup-sequence") "+w")
  437.              (rename (tackon @default-dest "s/startup-sequence") (tackon @default-dest "s/startup-old"))
  438.           )
  439.           (Abort startupfileerr)     
  440.        )
  441.  
  442.        (complete 52)
  443.  
  444.        ;-----------------------------------------------------------
  445.        ;write EPU execute script file for chosen device
  446.  
  447.        (textfile
  448.           (help)
  449.           (prompt)
  450.           (dest (tackon @default-dest "start"))
  451.           (append  (cat "EPU device " dev  " lib " lib))
  452.        )
  453.  
  454.        (if (exists "T:")
  455.           (Set null 0)
  456.           (makeassign "T" (Tackon @default-dest "T"))
  457.        )
  458.    
  459.        (complete 50)
  460.  
  461.        ;-----------------------------------------
  462.        ;create new Startup-sequence with epu run line
  463.  
  464.     
  465.        (textfile
  466.           (help)
  467.           (prompt)
  468.           (dest (tackon @default-dest "s/startup-sequence"))
  469.           (append (cat "EPU device " dev " lib " lib " Hmode\n"))
  470.           (include (tackon @default-dest "s/startup-old"))        
  471.        )
  472.  
  473.        (protect (tackon @default-dest "s/startup-sequence") "+r -w +e -d")
  474.        (protect (tackon @default-dest "devs/system-configuration") "+r -w +e -d")
  475.        (protect (tackon @default-dest "libs/version.library") "+r -w +e -d")
  476.  
  477.        (complete 55)
  478.  
  479.        ;-----------------------------------------------------------
  480.        ;run EPU 'start' script file - EVERYTHING WRITTEN TO INSTALLDEVICE
  481.        ; WILL NOW BE COMPRESSED WITH THIS LIBRARY !!!!!!!!!!!
  482.  
  483.        (execute (tackon @default-dest "start"))
  484.  
  485.        ;--------------------------------
  486.  
  487.     ))
  488.     
  489.     ;write 'compress' script to recomp selected drive
  490.    ;and delete extra .EpuTmp files
  491.    
  492.    (set update (cat "\n\n\nEPU Installed on " installdevice " using " lib ".library"
  493.                     "\n\n\nStarting EPU Compression\n\n\n Press 'Proceed' to Compress Device")
  494.    )
  495.  
  496.    (textfile
  497.       (help "\nThe EPU program will compress your chosen device or partition "
  498.         "when you press proceed.\n\n"
  499.         "REMEMBER that the compression may take some time, especially "
  500.         "if you are compressing are large hard drive - maybe 3 hours!\n\n"
  501.         "The program will delete any TMP (temporary) files created by "
  502.         "the compression so don't reset your drive until the drive stops "
  503.         "and you are told to do so.\n\n"
  504.         "         Press PROCEED to compress your device"
  505.       )
  506.       (prompt update)
  507.       (dest (tackon @default-dest "compress"))
  508.       (append(cat "stack 500000\n"
  509.                   "Recomp >CON: " installdevice " all\n"
  510.                   "STAKKER:C/delete " installdevice "#?.EpuTmp\n"
  511.                   "STAKKER:C/delete " installdevice "#?/#?.EpuTmp\n"))
  512.       (confirm)
  513.    )
  514.  
  515.    (complete 60)
  516.  
  517.    ;------------------------------------
  518.    ;execute Compress file
  519.    (set workmsg (cat "\n\n\n Recompressing All of " installdevice "\n\n Please Wait ...."
  520.                   "\n\nIF The EPU Compression fails and Will not Exit..."
  521.                   "\n\nIt IS safe to 'ReBoot' your computer"
  522.                   "\nONLY if the Working drive has STOPPED."
  523.                   "\nAs damage to the Data/File Structure may occur")
  524.    )
  525.  
  526.    (working workmsg)
  527.  
  528.    (complete 70)
  529.  
  530.    (execute (tackon @default-dest "compress"))
  531.  
  532.    (complete 99)
  533.  
  534.    ;now remove all extra files
  535. ;   (delete (tackon @default-dest "start"))
  536. ;   (delete (tackon @default-dest "compress"))
  537.         
  538.    ;------------------------------------------------------------
  539.  
  540.    (complete 100)
  541.  
  542.  
  543.  
  544.    (
  545.       (set install
  546.          (askbool
  547.             (prompt again)
  548.             (help "This option allows you to compress another partition"
  549.           " or device without having to repeat the install routine."
  550.         )
  551.             (default 1)
  552.          )
  553.       )
  554.     
  555.       (if install
  556.          (set install 1) ; do it all again
  557.          (set install 0) ; finish
  558.       )
  559.    )
  560. )    
  561.  
  562. (exit reboot)
  563.  
  564. ;------------------------------------------------------------
  565.  
  566.  
  567.